package pcb.models.vo 
{
	
	/**
	 * IPage will be useful when it is not important 
	 * to distinguish between a section or slide.  For example when
	 * calling learningObjectStateModel.nextPage() and 
	 * learningObjectStateModel.prevPage()
	 * 
	 * @author Fintan Boyle
	 */
	public interface IPage 
	{
		/**
		 * corresponds to a frame label id somewhere in a flash file
		 * where the IPage instance resides
		 * @return a frame label
		 */
		function getId():String;
		/**
		 * corresponds to a frame label id somewhere in a flash file
		 * where the IPage instance resides
		 * @param	id a frame label
		 */
		function setId(id:String):void;
		
		/**
		 * Gets the display title for the page
		 * @return title
		 */
		function getTitle():String;
		/**
		 * sets the display title for a page
		 * @param	title
		 */
		function setTitle(title:String):void;	
		
		//can be 'lesson_part' or 'slide'
		/**
		 * Helps to determine how to navigate to/from the page
		 * Corresponds to pcb.models.vo.PagesTypes
		 * @return page type
		 */
		function getPageType():String;
		//function setPageType(pageType:String):void;	
		
		function isLoaded():Boolean;
		function setLoaded(boo:Boolean):void;	
		
		/**
		 * Corresponds to a frame label id somewhere in a flash file
		 * of the movieclip containing the IPage instance.
		 * 
		 * It is useful to know the location of the movieclip that corresponds 
		 * to a LessonPart holding an instance of a movieclip
		 * whoose base class is pcb.views.library.Slide
		 * 
		 * @return a frame label
		 */
		function getContainerId():String;
		function setContainerId(id:String):void;
	}
	
}